Apache也需要到官网下载合适的版本,目前使用较多的版本为2.0或者2.2建议下载2.2版本。Apache官网下载地址 实际上,我们所谓的 apache ,真正的名字叫 httpd 。
1.下载
|
|
2.解压
|
|
3.配置编译参数
|
|
--prefix
指定安装到哪里, --enable-so
表示启用DSO 。DSO是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。
--enable-deflate=shared
表示共享的方式编译deflate,后面的参数同理。
那什么是动态共享,什么是静态? apache 编译安装完成后会生成一个核心的二进制可执行文件叫做 httpd ,这个文件座位核心文件,提供服务时就是它在处理用户的请求,但是有一些功能,比如这里提到的 expires 就是配置静态文件(图片)过期时间的,也就是说图片可以在用户浏览器的临时缓存目录中缓存多久。这些功能是作为 httpd 的一个扩展模块来工作的,那么这种扩展模块有两种存在的方式,一种是直接在编译的时候和 httpd 文件拧到一起,组成一个体积大的文件,这种叫做静态。而另一种方式是,扩展模块作为一个独立的文件存在,只有在使用这个模块时再去调用它,这种叫做动态共享。两种方式中,动态的好处是,核心文件 httpd 比较小,模块随时用随时加载,耗费内存相对较少。而静态的优势是,在服务启动时,会把所有模块加载,用到时很快就执行,效率较高。建议倾向用动态。
如果出现了这样的错误:
|
|
解决办法:
|
|
为了避免在make的时候出现错误,所以最好是提前先安装好一些库文件:
|
|
4.编译
|
|
5.安装
|
|
以上两个步骤都可以使用 echo $?
来检查是否正确执行,否则需要根据错误提示去解决问题。
|
|
为 0 则没有问题。